Windowsit was the joke of the decade when it first appeared on the computing scene in 1985. Not too many people would even consider using it. DOS was the king of the hill, and as far as anyone was concerned, things would remain that way for the foreseeable future. The three main problems with Windows according to critics were hardwareit took too much memory and processor power to run Windows; speedusing a DOS application was a lot faster; and reliabilityWindows applications tended to lose data or fail in other annoying ways. I was one of those folks on the DOS side of the playing field at the time and for good reason; all those critics were right on the mark. Windows wasn't ready for prime time.
Microsoft has done a lot of work with Windows since those early days. The numbers and types of computer users have changed as wellgone are the days when you could assume a specific level of knowledge on the part of the user. Anyone who watches television knows what has happened to the processing power of PCs over the years; my screen gets filled with Intel Inside commercials on more than a few occasions. Suffice it to say that the last ten years have marked a major change in the way we view computing.
PCs started out as mere playthings that had character-mode screens, a little memory, a few small applications, and not much more. Today, we use computer systems crammed with megabytes of RAM, huge hard drives, impressive displays, and applications that provide an ease of use that early computer users wouldn't have dreamed possible. All this new activity centers around the graphical user interface (GUI) rather than the text-mode interface of yesterday. At least part of the reason for that change is Microsoft Windows. Of course, Microsoft would have you believe that Windows is the entire reason, but frankly, it isn't. Windows is only part of the GUI picturealbeit a large one.
When Windows was first developed, it was competing with an entrenched GUI environmentthe Macintoshand the first few releases of Windows simply weren't designed as well as Apple computers. Besides, not many applications made use of the Windows interface. You could run programs in Windows, but there was little benefit. I could do everything I needed to do faster, and with a lot less effort, under DOS. My favorite quote back then was "I don't do Windows."
When Windows 3.0 hit the streets in late spring of 1990, many software vendors announced products to support this GUI. The release of Windows 3.1, which included many enhancements, further fueled the growth of Windows-based applications. Windows for Workgroups and Windows NT added networking and other refinements to the Windows environment, further increasing its appeal to corporate America. (An interim release of Windows for Workgroups, version 3.11, took care of some reliability and speed problems found in earlier versions.)
Windows actually has three classes of users today. A lot of corporate users (and some home users as well) are sticking with Windows 3.x because it's familiar and doesn't require them to buy any new hardware. This venerable operating system doesn't meet everyone's needs, however. Some people view Windows for Workgroups as too little because it doesn't provide a robust multitasking environment for some tasks. The home market has started looking at Windows 95 to meet its needs. Not only is it easy to install and use, but Windows 95 is the first version of Windows that will run a wide variety of game programs well enough to satisfy most user's needs. Corporate America is less than thrilled with Windows 95, howeverit just doesn't provide enough security and your average bean counter isn't very interested in how well an operating system runs games. Windows NT now comes in two flavorsserver and workstationto satisfy the needs of corporate America. Sure, this operating system doesn't run old programs very wellespecially ill-behaved DOS programs. It also requires a major investment in new hardware. Windows NT does provide the security and reliability that business needs to get the job done, however, and that's what business is looking for. Now, windowing environments for beginning, intermediate, and advanced users come from the same source and have much the same interface.
Why has Windows become so popular? Windows-based programs simply are easiermuch easierto learn and use than conventional DOS applications. As most mainstream products (the ones most PC users already know and love) have joined the Windows ranks, the real power of computing is made available to people who couldn't use it before. In fact, some Windows versions of products, such as WordPerfect, are so popular that their vendors don't plan to release a new DOS version of the product, except to fix bugs. In fact, most developers have abandoned DOS completely in favor of Windows.
Looking Ahead: This chapter presents a historical view of Windows: What did we start with, and where did Windows go from there? It's always important to examine where you've been in order to fully appreciate where you are now. I also examine Microsoft's floating marketing strategy regarding Windows 95 and Windows NT.
Windows 95 is far from perfecta fact reflected in the dismal corporate sales that get reported in the trade presses on a regular basis. It's not just the feature set of Windows 95 that's holding it back, although it's pretty obvious that corporate users want the reliability and security features that Windows NT provides. Hidden bugs in the current release version of Windows 95 have certainly held it back as well and provide lots of gossip for the industry. The current problems with some device drivers, for example, have caused some users more than a few problems. On the other hand, Windows NT is beginning to gain a real reputation for reliability, despite the fact that it won't run many older programs. (Few people would buy Windows NT Workstation expecting it to run ill-behaved game programs or an ancient DOS application.)
The important thing to remember with either product is how much Windows really has improved over the years. Both products are a vast improvement over what we had in the past. This chapter gives you that historical view and helps you understand how Windows NT adds to the Windows legacy.
I also take a quick look at some of the new Windows NT features that differentiate it from the previous versions of Windows and bring it more in line with the usability features provided with Windows 95. I won't really take a detailed look at them until later. The sole purpose of this chapter is to help you see the big picture. Future chapters take a detailed look at each feature.
The history of Windows is dotted with a number of successes and an equal number of failures. First I discuss the failures. Windows started out as little more than a task-switching environment. The initial 1985 release of version 1.0 left a lot to be desired, and its reception by the industry as a whole was, frankly, rather dismal.
The initial Windows release had many problems. Many of these problems stemmed from the hardware available at the time. An underpowered Intel processor, low-resolution graphics adapters, and a lack of memory made the PC a graphics-hostile computer. Other problems occurred because of a lack of support from software vendors. I believe one of the biggest hurdles was the user, however. The earliest computer users were technical types who understood hardware and software design. They easily adopted cryptic procedures and arcane commands.
As computer power became available to a wider audience, however, users struggled with "computerese" and sought ways to ease access to applications. The Apple Macintosh, introduced in 1984, was the first successful business-oriented product to provide a natural, picture-oriented interface for the computer. (Everyone remembers the ill-fated Lisathe predecessor to the Macintosh; even though the Macintosh eventually included many of the Lisa's features, the Lisa was a total failure before Apple even started.) The Macintosh operating system and other features were designed from the beginning with this GUI in mind. Microsoft recognized the Macintosh as the wave of the future, and Windows was the result of its development efforts.
The following sections look at the five major Windows releases that preceded the latest version of Windows NT. (I skip version 1.0, which was a total failure.) Notice the progress that each version made toward the product we use today. Also note which failures are still with us as Microsoft strives to provide backward compatibility as it moves forward. Should we give up some compatibility in order to get an improved operating system? Corporate America says no, but the typical user says yes. Whom do you think Microsoft will heed?
Microsoft's second attempt at a GUI wasn't much better than its first. Windows 2.0, which appeared in 1987, didn't offer the Program Manager interface that people associate with Windows today. In fact, it didn't even use the icons that most people associate with a GUI. This version of Windows provided a list of applications in text and didn't offer much more than a menuing system. This was due in part to the memory restrictions and lack of horsepower provided by the 8086 processor. It still made DOS easier to use, though, and enabled the user to start more than one task at a timeas long as the multiple tasks would fit in available memory. Windows 2.0 was a small but important step away from DOS. This version, like its predecessor, did poorly in the marketplace.
Intel introduced two new chips prior to the release of Windows 2.0. The 80286 appeared on the scene in 1983, and the 80386 appeared in 1985. Both processors offered features that made them far superior to the 8088. You might wonder why Microsoft even bothered to introduce a version of Windows for the 8088. The answer is simplemarketing. The majority of PC owners still owned 8088 machines when Windows 2.0 became available, so that's the market Microsoft developed for.
Microsoft introduced two other versions of Windows that allowed people to use the power of Intel's newer chips. 80286 users could use all of their extended memory for applications with the Windows/286 version. Like its counterpart, this version offered task switching, not multitasking. Task switching enables you to run several applications but not simultaneously. Only the foreground application does any work. The background applications are suspended until you bring them to the foreground. Multitasking allows both foreground and background applications to execute. The Windows/386 version, released in 1988, enabled the user to multitask applications. It wasn't the preemptive multitasking that provides a smooth transition from application to application, but it was cooperative multitasking, which allowed one application to grab all the system resources if it wanted to. Think of cooperative multitasking as an honor-system method of managing applications (and you know how well the honor system works). Preemptive multitasking leaves the operating system in charge, ensuring that all the applications work together. In other words, this version of Windows was a step in the right direction, but it was still a far cry from what Windows is today.
Here's the short take on Windows 2.0: None of its incarnations was very successful. All three versions suffered from the same problem. They didn't deliver the type of interface that people needed and wanted. Reliability was also a problem, but people really never got past the interface to find that out. (Chapters throughout this book examine some of the reliability problems of previous versions of Windows and how Windows 95 fixes some but not all of them.) A GUI without graphics isn't really a GUI at all.
Windows 3.0, introduced on May 22, 1990, really got the ball rolling. This was the first version that offered users a real reason for switching from DOS-based applications. Not only did Windows 3.0 offer enhanced memory support so that applications could do more, but it also offered an attractive interface as well (see Figure 1.1). This was the first version to make extensive use of icons. It also offered the Program Manager interface that most people associate with Windows. Most important of all, you could run more than one task simultaneously under Windows 3.0, a feat impossible with DOS alone. Of course, Microsoft had to make a few concessions to gain the support that Version 3.0 enjoyed. Version 3.0 was the last version you could use on an 8088, for example.
Figure 1.1. Windows 3.0 and above offer a graphical user interface (GUI).
Even though the marketplace welcomed Windows 3.0 with open arms, users soon discovered problems. Most of the negative aspects of Version 3.0 revolved around the concessions Microsoft had to make for backward compatibility. For one thing, running Windows 3.0 in real mode meant that Microsoft couldn't make the system as reliable as they wanted it to be. (Chapter 8, "Memory Management," looks at real mode and its impact on the system.) An operating system that runs in protected mode can intercept and deal with maverick applications that cause the system to crash. Using real-mode drivers in some areas meant that the Windows 3.0 safety net was pretty thinor nonexistent. One faulty application could cause a data-killing system crash. The biggest complaint that people had about this version, however, was its own inherent instability.
Another problem was the infamous UAE (unrecoverable application error). Although Windows itself was responsible for some of these errors, they often had nothing to do with Windows itself but instead came from the applications it ran. An application might try to grab a file handle to a nonexistent fileor some other system resourceand crash the system as a result.
Undaunted by these problems, Microsoft introduced yet another version of Windows. Version 3.1 offered the user even more features, but it's the hidden details that set this version apart from Version 3.0. The UAE disappeared in this version because Microsoft added methods for validating system requests. Every time an application wanted to look at a disk file or perform some other task, Windows made sure that task could succeed before it gave the go-ahead. This forced a lot of vendors to rewrite their software to actually look for potential problems before the software requested a system service. Unfortunately, even with all these checks, some applications still violate system integrity. The result is a general protection fault (GPF). From a user's point of view, the GPF doesn't look much different from the UAE; both can cause the machine to freeze. Windows usually recovers better from a GPF, though. In addition, users see fewer GPFs than they did UAEs. The GPF also shows that Windows at least recognized an error before the machine froze; the UAE always resulted from a failure to recognize a symptom. This difference means that Windows can now provide more information to a vendor in an effort to find and fix the source of a GPF. (This is why Windows 3.1 includes the Dr. Watson utility, which records the set of conditions that Windows detected right before a system failure.) Suffice it to say that Version 3.1 added a lot under the hood and forced developers to rethink their Windows programming strategies.
Microsoft also decided to provide a fully enhanced memory environment for Windows 3.1. No longer did the user have to pay as much attention to the amount of actual system memory available for running applications. Windows 3.1 could use virtual memory, a method of using part of the hard drive to simulate RAM. (I discuss this in Chapter 8, "Memory Management.") Microsoft used part of this additional memory to provide enhanced driver support. A user could no longer run Windows on an 8088 by starting it in real mode because the 16-bit drivers needed to run in protected mode. In addition, the extra memory allowed Microsoft to improve driver performance and the overall reliability of Windows. (Chapter 8 compares real mode and protected mode.) Needless to say, running everything in protected mode enabled you to utilize all that memory sitting above the 1MB conventional memory boundary. Using protected mode also made Windows 3.1 a little more stable than its predecessor. This version still had to call on DOS to perform some tasks, however.
Once Windows was entrenched in the corporate environment, certain failings came to light. The biggest failure was the lack of good network support. I'm not talking about the big-mainframe-to-PC connection, but I mean the small, intimate Local Area Network (LAN) connections required for workgroup computing. These small groups of users don't have the monetary resources required to create a big network. What they really need is something that enables them to share a few devices and some files. Windows for Workgroups met this need. A user can create very inexpensive connections for a small group of people by installing a network card and some cable. This version of Windows also provided some simple network-related utilities such as a meeting scheduler and an e-mail system. A peer-to-peer network that uses Windows for Workgroups might not provide the robust environment needed for enterprise computing, but it will work for a small organization.
This version of Windows is also more reliable than its predecessor. For one thing, Microsoft included many bug fixes to Windows-specific features. As a result of these bug fixes and the enhanced support provided by Windows for Workgroups, many pundits in the trade presses recommended that people switch to Windows for Workgroups, even on stand-alone machines. Other than that, Windows for Workgroups provides essentially the same feature set as Windows 3.1.
I was never quite sure why Microsoft introduced the Windows 3.11 version. It didn't cost all that much less and didn't fix anything that Windows for Workgroups 3.11 hadn't already fixed. In fact, I don't even count it as a new version. The only thing I can figure out is that Windows 3.11 was another one of those smart marketing ideasdon't buy features you don't need. I wish application vendors would follow that strategy and produce modular word processors and spreadsheets (they promise to do just that in the future as a result of OLE automation and other technologies, but I'll believe it when I see it).
Windows 3.11 is the current low-end version of Windows for those people who don't need peer-to-peer networking. It contains all the drivers that you need to create connections to a Novell or other supported network, along with the enhanced device support that most people bought Windows for Workgroups to get. Suffice it to say that this version of Windows fixes the same problems as Windows for Workgroups 3.11 did. The only real difference is that you get less product for about the same price. (I'm talking street price here, not Microsoft's list price.)
The first version of Windows NTthe one that I'm talking about for historical reasonswas Microsoft's third attempt at a new operating system. Obviously, the first two operating systems were DOS and OS/2. I have always maintained that the first few versions of Windows were an operating environment akin to DESQviewnot a full-fledged operating system. In Windows NT though, users got a full-fledged GUI operating system.
Why should anyone even consider buying a hardware-intensive operating system when the DOS/Windows combination was so successful? Some people use Windows for mission-critical applications. They want more reliability from Windows than either the 3.1 or Workgroups versions can offer. The reliability problems presented by the current Windows setup make it unfeasible as a database server, for example. What if the server went down in the middle of a transaction? The results could be devastating, even in a workgroup setting.
Windows NT solves this problem by getting rid of DOS altogether. It provides a totally new Windows environment that looks like the old one but runs completely in protected mode. (Obviously, the new version of Windows NT uses the Explorer interface used by Windows 95, but I'm taking the historical view here.) Windows NT provides many other features as well. For one thing, it isn't restricted to the Intel family of processors. The initial version of Windows NT came out with support for the Hewlett-Packard Alpha processor as well. Later versions added support for the MIPS R4x00 and PowerPC processors.
The original version of this new and improved Windows came with a big price tag. Microsoft really designed NT as a server-based operating system. As a result, there's no way to run the server version of Windows NT with less than 16MB of RAM and a fast processor. (They say that you can use Windows NT with a 25MHz 80386 processor, but I wouldn't call this a usable level of performancea 33MHz 80486 processor is probably the least you can get by with.) Many users complain that the high hardware price tag just isn't worth the additional security that Windows NT provides. Corporate America, on the other hand, it starting to take another look at Windows NT as an alternative to Windows 95.
Microsoft finally came out with a workstation version of Windows NT that required just a bit less hardware. All you need to run this version of the operating system is 12MB of RAMstill way too high for most users who are used to the 4MB requirement of Windows 3.x. (I don't want you to get the impression that Windows 3.x can actually run with 4MB of RAM. Sure, it'll start and you can play a game of Solitaire, but a more reasonable level of RAM is 8MBstill far below the Windows NT minimum of 12MB.) I also found that this version can actually get decent performance on a slower processor, but not on the 25MHz 80386 processor that Microsoft tells you that Windows NT Workstation can use. A 25MHz 80486 is more likely to meet your needs.
Undaunted by low Windows NT sales and still wanting to give users an alternative, Microsoft developed Windows 95. It appeared in August of 1995, but just barely. This particular operating system got delayed so often that many beta testers jokingly renamed it Windows 96. Some people doubted that Microsoft would make their release deadline.
Deadlines caused a lot of problems in the development of the first version of this operating system. I was surprised at the number of times that Microsoft cut the feature set of this particular versioncuts that made it possible to release the operating system on time but probably killed it in the corporate environment. (They later included many of these lost features in an add-on package called the Plus Pack.)
The delays that Microsoft experienced also forced them to make some concessions that really weren't in the best interest of the user. There is still a lot of 16-bit code included with Windows 95, for examplean operating system that was supposed to get rid of most, if not all, of that old code. Fortunately, most of the important subsystems are 32-bit, and that has greatly improved Windows reliability and performance. The 32-bit interface also enables the user to load 32-bit applicationsa big plus from a reliability and performance standpoint.
Despite the long development time and loss of features, Windows 95 does have many positive aspects. For one thing, it doesn't rely on DOS for Windows application needsat least not on a newer machine; all the Windows DLLs and supporting code run in protected mode. Windows 95 does rely on a copy of DOS running on a virtual machine to run DOS applications, provide some low-level BIOS support on non-Plug and Play machines, and support antiquated devices that use real-mode drivers. This level of DOS activity is far below what previous versions of Windows required, however. Windows 95 also uses a subset of the Windows NT 32-bit programming interface and runs completely in protected mode (except for real-mode drivers).
Not only does Windows 95 perform better, faster, and more reliably than the old Windows 3.x releases, but it also sports a new interface. Figure 1.2 shows the new Explorer interface, which is the same interface that the new version of Windows NT uses. Windows 95 represents a halfway point between Windows for Workgroups and Windows NT. It also represents the future of Windows for the home or small business user. (Microsoft originally introduced Windows 95 as the operating system of choice for everyone, although later press releases revealed low corporate sales and a revised Microsoft stance.)
Figure 1.2. Windows 95 sports a new interface that should make life a lot easier for the novice user.
A new interface isn't the only thing you'll find in Windows 95. There are many other valuable features for the user. Windows 95 is the first version of Windows to include Plug and Play as an integral part of the operating system, for example. It also provides support for the messaging application programming interface (MAPI) and telephony application programming interface (TAPI). The peer-to-peer network is greatly enhanced, and system configuration is a snap when compared to Windows for Workgroups 3.11. All of these features really set Windows 95 apart from its predecessors.
Now that you have some idea of where we've been, I present an overview of where we are. Windows NT Workstation is the new version of Windows that Microsoft hopes will appear on every corporate workstation sometime in the near future. Microsoft also hopes the server version of the product will start making inroads against such products as Novell's NetWare. Both products contain the two features that should attract corporate America's attention: speed and reliability.
The following sections won't review the actual features of this latest version of Windows NT; I do that in "An Overview of New Windows NT Features," later in the chapter. These sections tell you how Windows NT is an improvement over other versions of Windows. In other words, it'll tell you why you need to use it in some circumstances.
Tip: Use Windows 95 whenever compatibility is the key issue. Windows NT isn't a good operating system for the home and small business user for two reasons. First, it doesn't provide the level of compatibility support that Windows 95 provides. The very security and integrity features that make this the perfect corporate operating system will prevent Windows NT from using older hardware, applications, and most games (even newer DOS-based games). Second, the cost of using Windows NT is a lot higher than Windows 95. If the home or small business user could actually implement the features that Windows NT provides, the cost might be worthwhile. Most of these users never begin to use all the features that Windows NT provides, however.
There's no doubt that Windows 3.11 made a lot of headway in the bug department. Remember the GPFs I told you about? Some of them were Microsoft's fault (even though Microsoft would have you believe that Windows is the perfect product and that the third-party vendors are really to blame). In some situations, Windows simply didn't work as advertised. Windows 3.11 fixed many of these problem areas, especially the crippling memory allocation problems that plagued earlier versions. Of course, Windows 3.11 still isn't perfect, or we'd be using it in place of Windows NT. Some of the memory problems aren't in the code but are part of the architecture. Microsoft didn't deal with any memory-related architectural issues in the 3.11 release.
Many people noticed that Windows 3.11 still has many problems. For one thing, GPFs are still common, although less common than before. Even though Windows 3.11 does fix a few architectural problems by providing features such as 32-bit disk access, it didn'tcouldn'tfix all of them. Some of the problems in Windows 3.xsuch as disk-related failuresare a result of using DOS for disk access. When you base your protected-mode, multitasking operating environment on a real-mode, single-tasking operating system, it's not too difficult to understand why there are problems. Any real-mode access leaves Windows open for attack from any application. As a result, even though Windows 3.11 offers 32-bit disk access and other reliability additions, it isn't enough. Microsoft has to get rid of the underlying problemDOS. Windows NT and Windows 95 both do just that. Of the two, Windows NT does the superior job, but the user will pay the cost in lost support for older hardware that requires any form of real-mode driver. (You see later that DOS isn't completely gone from Windows 95, but it's far enough away now that its impact is minimal.)
Looking Ahead: Chapter 6, "An Architectural Overview," provides an overview of the Windows NT architecture. It'll help you understand why Windows NT is more robust than both Windows 3.x and Windows 95. Read Chapter 6 if you want to find out more about the specific improvements that Microsoft has made to enhance Windows NT reliability. If you want to know more about the Windows NT file system and how it compares to previous versions, read Chapter 9, "A Tale of Three File Systems," which compares the various forms of disk access used by previous versions. Other architectural chapters include Chapter 7, "Understanding the Windows NT Registry," Chapter 8, Chapter 10, "Graphics NT Style," and Chapter 11, "Printing NT Style," (printer subsystem). Also read Part VI, "Networking with Windows NT," for a complete description of the Windows NT networking architecture. All of these elements work together to make Windows NT a superior operating system for both the server and workstation.
Other problems occur when programmers misuse or misunderstand the Windows API (application programming interface). Anyone who's tried to figure out the Windows API in order to write an application knows what I mean. The problems aren't limited to C programmers, as you might think. Microsoft Visual Basic, Microsoft Access, CA-Visual Objects, Borland Delphi, and a wealth of other "high-end" application development languages give the programmer access to Windows functionality through the API. In fact, you might be surprised at the level of access provided by some application programs such as Microsoft Word for Windows through its Word Basic "macro" language. Many API functions are so counterintuitive that Houdini himself couldn't untie the knot. Combining these counterintuitive commands with a programmer who might have limited programming skills is a recipe for application disaster.
Windows NT can't fix these API-related problems for youat least, it can't fix the 16-bit API problems. Microsoft did take the opportunity to change the API and make it more intuitive when it developed Win32s, however. Because programmers will probably use this 32-bit API in place of the old one to develop new applications, they should reap the benefit of using an API that is at least a little easier to understand. With understanding should come some level of enhanced stability.
Tip: Microsoft will sell you a copy of Windows 3.11 for your stand-alone machine. Many people find that Windows for Workgroups (WFW) 3.11 is much more stable, however. It contains some fixes that the current version of Windows doesn't provide. Even if you plan to use your machine in a stand-alone mode, the additional stability provided by WFW 3.11 makes it a better choice right now. Of course, upgrading to Windows 95 or Windows NT is better than either previous version at this point.
Some users shot themselves in the foot while installing previous versions of Windows. You had to know quite a bit about DOS and Windows to get a decent installation on some machines. This meant looking up every IRQ and port address that your system used. Windows NT and Windows 95 both eliminate this problem to a certain degree. (Windows 95 actually does a better job in this area right now because Windows NT doesn't support the real-mode drivers that could provide clues to the operating system.) Both operating systems include dialog boxes that tell you what resources each device in your system is using. In addition, it tells you which resources you can't use when it's time to reconfigure a device. Are the installations provided by either operating system foolproof? No. You can still shoot yourself in the foot in certain circumstances. The new installation features, however, can greatly reduce your chances of getting a bad installation due to device configuration conflicts.
One of the biggest reasons that people use Windows for Workgroups is the networking features it provides. Not only does it include the network operating system itself, but it also provides several utility programs. A small workgroup can easily function using the features provided by Microsoft Mail for e-mail and Schedule+ to manage everyone's appointments. It's also easy to use WFW, as long as you already know how to use the stand-alone product. You can build a small peer-to-peer network for your local workgroup in a matter of hours.
Just like everything else with Windows, getting everything right the first time is nearly impossible. Suppose that you want to set up a small workgroup and still keep access to your NetWare or NT file server. WFW is ill equipped to provide this level of functionality. The problem is twofold. Not only do you have to battle Windows 3.x-specific networking problems, but you also have to deal with the local peer-to-peer network. Many a network administrator spends sleepless nights trying to get everything to work together.
Both Windows NT and Windows 95, on the other hand, come with dual network protocol support built right in. The new version of Windows NT will provide the enhanced network configuration interface originally developed for Windows 95making it not only more robust, but also just as easy to configure as its Windows 95 counterpart. Theoretically, all you need to do is select both networks in the Network Configuration dialog box. After performing a few additional setups, you should have a local peer-to-peer network that also connects to the company's main network on the file server.
Looking Ahead: Networking under Windows NT is more complex than the Windows 95 environment for several reasons. First, Windows NT works with more platforms than Windows 95 does. Second, you'll find Windows NT on a corporate desktopone that might need to connect to a wide variety of sourcesnot the home or small business machine with one or two sources. Part VI covers the wide variety of Windows NT networking situations in detail.
We can all be thankful that Microsoft took a first step by offering the user WFW for simple networking needs. Most people will leave WFW behind, however, and never look back once they see the networking capabilities provided by both Windows NT and Windows 95. (As with everything else, Windows 95 is very much geared to the home and small business userMicrosoft plans to enhance this perception with the next update of Windows 95.) These features might not be perfect, but they do go a long way toward providing the user the capabilities needed for an efficient networking solution.
In addition to providing better networking features, these enhanced versions of Windows are also faster than WFW. Using 32-bit code to perform much of the work, coupled with preemptive multitasking, makes both operating systems run much faster. Windows 95 can use a level of hardware similar to that of a WFW machine, but Windows NT needs a little more hardware to get the job done. Faster isn't always better, though. Inefficient use of speed can rob a system of the power it should have. If you spend time waiting for a print job to spool to the hard drive, for example, you aren't efficiently using the speed your system can provide. Another example is when two applications require system resources and one ends up grabbing the entire resource. Windows NT and Windows 95 both come out ahead in this regard as well. The Windows 3.x tasking system just isn't as efficient as the advanced operating systems. The use of threads for 32-bit applications under the new versions of Windows only serves to increase the efficiency of an already improved system. As with everything else, though, you still need to tweak Windows a little before all these new performance-enhancing features really do the job they're supposed to do.
So far I've spent a lot of time talking about Windows 95 and Windows NT in tandem. The reason is simple: We're no longer dealing with a simple computing environment. There were no corporate versus small business user issues to resolve when Windows first arrived on the scene. All that has changed. PC users now work in very specific computing environments. One size fits all just doesn't make it anymore, and I'm glad to see that Microsoft has finally recognized that fact.
Windows NT Workstation is designed for a machine that has a lot to do and little time to do it. Sure, it requires a lot more hardware than Windows 95, but the performance edge is noticeable. You can't help but see that Windows NT is capable of running more tasks more efficiently than Windows 95. The big culprit, of course, is all that 16-bit baggage that Windows 95 still carries around. The main operating system components use 32-bit code, but many of the subsystems don't. Those subsystems rob a workstation of performance in small, but noticeable ways.
Will a home user notice that it takes two or three seconds less to load an application such as Word for Windows? Probably not. A corporate user might not use just one or two applications at a time, however. I'm currently running four applications on my machine besides the standard utility programs such as Explorer and Microsoft Mail that I keep open, for example. I'm also running a word processor, a communication program, my graphics program, and a database manager. Of these four, only the graphics program is sitting idle.
Am I representative of a typical corporate user? Probably not, but I assume that most of you are running at least two applications simultaneously. Is Windows 95 up to the task? Maybebut corporate America can't accept maybe as an appropriate response.
Maybe you only run one application at a time and perhaps leave an e-mail application running. Windows 95 could certainly handle that load, but you need to look at two other problem areas. Several trade papers recently noted a security hole in Windows 95; the culprit was the inclusion of MS-DOS mode as part of the operating system. Even without that loophole, Windows 95 can't provide the same level of security as Windows NT and still maintain the same level of compatibility. Windows NT gives up some compatibility with older applications and hardware so that it can provide the level of security that business has to maintain. Think about it this way: How would you feel if someone read reports about your finances, all because of a hole in Windows security? Businesses get into lawsuits and other kinds of problems such as industrial espionage when security issues aren't addressed. Suffice it to say that security is a very big business issueone that Windows 95 isn't equipped to handle.
One final area where Windows 95 just can't handle the corporate environment is reliability. A single inaccurate transaction entry in a database could cost some businesses millions of dollars. I'm not talking about a simple inconvenience here; I'm talking bankruptcy. A business needs to know beyond a shadow of a doubt that its data is secure. An operating system that fails, even in the smallest way, to protect its data won't meet the needs of a large business. It's the issue of compatibility versus reliability when you look at Windows 95 versus Windows NT. Windows 95 has to stretch the rules a bit to allow some of those old programs to work, but Windows NT provides no such luxury.
Multitasking is one of those nebulous words that everyone uses but that no one takes the time to define. The first thing you need to do before you can understand multitasking is define the word task. A task is essentially an application that is running. When you start Windows, you might think that nothing is running, but several applications are already getting work done on your machine. Explorer (or Program Manager) is considered a task, for example. Any network connections or print spoolers are considered tasks. A screen saver is yet another task. There are numerous system-related tasks as well. The Windows kernel is considered a task. Industry uses two terms to refer to a running application or thread: process and task. I prefer task because it's a little less nebulous than process. You will probably see both terms used in the documentation you read, however.
With Windows 3.1, you can associate every task with a single application. The definition of task doesn't really stop here for Windows 95 and Windows NT. Some 32-bit applications use a technique called multithreading, which enables them to perform more than one task at a time. You could recalculate your spreadsheet and print at the same time if the application supports multithreading, for example. What happens is the spreadsheet starts another task (called a thread) to take care of printing. It might even start a second thread to do the recalculation so that you can continue to enter data. A thread can also be considered a subtask under the application that is running.
Now that you understand what a task is, it's time to look at the definition of multitasking. Everyone assumes that multitasking is just thatseveral tasks (or processes) running simultaneously on one machine. This is a good start for a definition, but it doesn't end there. An important consideration is how the operating system allocates time between tasks. With Windows, it becomes important to actually define the method used to manage tasks and differentiate between different kinds of multitasking. Windows NT supports two kinds of multitasking: cooperative and preemptive.
Windows 3.0 introduced a feature called cooperative multitasking. This is how it was supposed to work. Application A, for example, runs for a little whilejust long enough to get one component of a task finished. It then gives control of the system back to Windows so that Windows can take care of any housekeeping chores and allow application B to run for a while. This cycle continues in a round-robin fashion between all the tasks running at any given time.
What really happens is that some applications follow the rules, but others don't. Under cooperative multitasking, the operating system gives up too much control; an application can hog all the system resources if it wants to. Some applications do just that, and the result is that cooperative multitasking doesn't really work very well. Most of the time the user spends looking at the hourglass is really time in which Windows has temporarily lost control of the system to an application that doesn't want to share with anyone else.
All the legacy applications that run under Windows NTthe 16-bit applications that you moved from Windows 3.xstill have to run in a cooperative multitasking mode. Windows NT minimizes the impact of these applications, however, by running each one in its own address space. (Contrast this with Windows 95 where all of the 16-bit applications share one address space.) Windows NT preemptively (a term that I'll define in the next few paragraphs) multitasks each 16-bit address space with all of the 32-bit applications on the system. (Under Windows 95, you'll see the one shared address space preemptively multitasked with the 32-bit applicationsa significant difference for a number of reasons that I cover in Part III, "A Look Under the Hood.") Unlike Windows 95, the 16-bit applications don't compete with each other or affect any 32-bit applications running on your machine. This includes Explorer and any other Windows NT-specific tools. (Of course, you will upgrade most of your commonly used 16-bit applications, such as your word processor and spreadsheet, to Windows 95 or Windows NT 32-bit versions.)
When Microsoft designed Windows NT, they wanted something better than cooperative multitasking, so they designed an operating system that uses preemptive multitasking. Windows NT currently supports preemptive multitasking for any 32-bit application you run. Think of it this way: Preemptive multitasking works like a traffic light. Traffic goes one way for a while, but then the light changes and traffic goes the other way. The actual amount of time each task gets is weighed by the user and the operating system to meet some criteria, but this access is supposed to be fair. Every application is supposed to get its fair share of processor time, and preemptive multitasking enforces this principle. Windows NT monitors each application and interrupts it when its time is up. It doesn't matter whether the application wants to give up control over the system; Windows NT doesn't give it a choice.
Preemptive multitasking has another, more important, difference from cooperative multitasking in the way the system reacts. Under Windows 3.1, an hourglass means that the system is tied up. You can't do anything else until the hourglass goes away. On the other hand, an hourglass under Windows NT only means that the current task is tied up. You can always start another task or switch to an existing task. If that task isn't busy, you can perform some work with it while you wait for the initial task to complete its work. You know when the original application has finished because the hourglass goes away when you place your cursor over the task's window. The bottom line? Preemptive multitasking means that the user doesn't have to wait for the system as often. (Both Windows 95 and Windows NT actually provide two hourglass cursors. The first cursor is a simple hourglass that means the system is performing a task that you can't interrupt; the second is pointer cursor and hourglass combination that means you can move to another task.)
Note: Windows NT actually enforces preemptive multitasking better than Windows 95 because of the security features it provides. The same security API that Windows 95 ignores in the name of flexibility also reduces its capability to force errant applications to give up the processor. The result is that you'll still see an occasional hourglass under Windows 95, something you'll never (or almost never) see under Windows NT in similar circumstances. In addition, the fact that Windows 95 uses one shared address space for 16-bit applications affects its ability to multitask. Placing each 16-bit application in its own environment might consume a bit more memory and place a larger burden on the operating system, but it also enhances the smooth flow of resource sharing between various threads and reduces the chance that any one thread will freeze the system.
Finally, cooperative multitasking has a serious flaw. When Windows lost control because an application took over, there was no way to clear that application if the machine froze. Because Windows NT maintains constant control of the machine, you no longer need to worry about the machine freezing in the middle of a task. Even if one application does hang, you only need to end that task, not reboot the entire machine. As with Windows 3.1, pressing Ctrl+Alt+Del doesn't automatically reboot the machine. Unlike Windows 3.1, however, Windows NT displays a list of applications, and you get to choose which one to terminate (see Figure 1.3).
Figure 1.3. Preemptive multitasking means that Windows NT never loses control of the machine; allowing you to recover from application errors.
You might wonder why Microsoft (or any other vendor) would use cooperative multitasking if preemptive multitasking is so much better. There are a few good reasons. First, DOS is nonreentrant. This means you have to allow DOS to complete one task before you give it another one. If you disturb DOS in the middle of a task, the entire system could (and will) freeze. Because Windows 3.x runs on top of DOS, it can't use preemptive multitasking for any services that interact with DOS. Unfortunately, one of those services is the disk subsystem. Do you see now why it would be fairly difficult to use preemptive multitasking on any system that runs on top of DOS?
The second problem with preemptive multitasking is really a two-part scenario. Both relate to ease of designing the operating system. When an operating system provides preemptive multitasking, it also has to include some kind of method for monitoring devices. What if two applications decided that they needed to use the COM port at the same time? With cooperative multitasking, the application that started to use the COM port would gain control of it and lock the other application out. In a preemptive multitasking situation, the first application could get halfway through the allocation process and get stopped, and then the second application could start the allocation process. What happens if the first application is reactivated by the system? You have two applications that think they have access to one device. In reality, both applications have access, and you have a mess. Windows NT handles this problem by using a programming construct called a critical section. (I'll discuss this feature more in a moment.)
Preemptive multitasking also needs some type of priority system to ensure that critical tasks get a larger share of the processor's time than noncritical tasks. Remember, a task can no longer dictate how long it needs system resources; that's all in the hands of the operating system. Theoretically, you should be able to rely on the users to tell the operating system how they want their applications prioritized and then allow the operating system to take care of the rest. What really happens is that a low-priority task could run into a fault situation and need system resources immediately to resolve it. A static priority system can't handle that situation. In addition, that low-priority task could end up getting little or no system resources when a group of high-priority tasks starts to run. The priority system Windows NT uses provides a dynamic means of changing a task's priority. When a high-priority task runs, Windows NT lowers its priority. When a low-priority task gets passed over in favor of a high-priority task, Windows NT increases its priority. The dynamic priority system enforces the idea that some tasks should get more system resources than others, yet ensures that every task gets at least some system resources.
Preemptive multitasking requires one more consideration. Even if you use the best dynamic priority system in the world and every piece of the operating system works just the way it should, you'll run into situations where a task has to complete a sequence of events without getting disturbed. The application might need to make certain that a database transaction is written to disk before it hands control of the system back to the operating system, for example. If another task tried to do something related to that transaction before the first task completed, you could end up with invalid or damaged data in the database. Programmers call a piece of code that performs this task a critical section. A critical section usually occurs with system-related tasks such as memory allocation, but it also can happen with application-related tasks such as writing information to a file. Cooperative multitasking systems don't have to worry as much about critical sections because the task decides when the operating system regains control of the system. On the other hand, a preemptive multitasking system needs some way for a task to communicate the need to complete a critical section of code. Under Windows NT, a task tells the operating system that it needs to perform a critical section of code by using a semaphore (a flag). If a hardware interrupt or some other application were to ask to perform a task that didn't interfere with any part of the critical section, Windows NT could allow it to proceed. All a critical section guarantees is that the task and its environment will remain undisturbed until the task completes its work.
One of the reasons that the corporate environment wants to use Windows NT instead of Windows 95 (besides reliability, of course) is the fact that you can use it on more than one platform. What do I mean by the term "platform"? To understand the full meaning of this word, you have to begin with the operating system. Every operating system provides something called a service. Essentially, a service is the ability to communicate with a device or perform some kind of task such as reconfiguring the system. Think about that for a second. Even the task of writing data to a hard disk is a form of communication.
A platform is a machine that uses one type of processor (or a processor family) and a similar hardware architecture. Every IBM family computer uses the same Intel family of processor, for example: the 80x86. You'll also find that the buses used in the various computers follow specific guidelines and that the peripheral boards that plug into the buses have to maintain a certain level of compatibility. You get the ideaa platform is one type of computer.
How does the idea of a platform affect operating services such as writing to the disk? Providing a service in DOS terms means talking directly to the hardware. When you write to a file, the data you want to write passes through DOS, to the ROM BIOS routines, and finally to the hard disk itself. Windows 95 follows a similar procedure. The big difference is that it provides a protected-mode substitute for the ROM BIOS in the form of drivers, allowing it to maintain better control of the Windows environment.
Windows NT includes the idea of a hardware abstraction layer (HAL). A write to the hard drive means that you send the data to Windows NT, which in turn passes it along to the protected-mode hard disk driver (the ROM BIOS substitute) and then through the HAL to the actual hard disk. The HAL enables you to move the entire operating system to another machinesay, a MIPS 2000 processorwithout rewriting anything but the HAL. As far as Windows NT is concerned, you're still sitting on an Intel-based machine. Obviously, this added capability doesn't come without a costyou pay for it with reduced performance in some operations such as writing to the hard disk. Fortunately, Microsoft has tuned the routines to a point where most users would have to actually time the performance of Windows 95 and Windows NT to see any difference.
No one should ever confuse Windows NT with a low-end workstation operating system. It requires too many resources. Can you really justify a 486 or Pentium baseline machine with a minimum of 16MB just to start the operating system as a word processing workstation? If the current trend in corporate buying is reported accurately, some companies are doing just that, but most aren't. Windows NT needs a lot of resources to perform wellthere's just no way around it. If you want to use Windows NT as an operating system, you'd better be prepared to buy the hardware that it needs to get the job done, and that means more than the minimal requirements that Microsoft puts on the package.
Using Windows NT as a low-end workstation has many other problems. For one thing, anyone who's ever tried to run certain older DOS applications, such as games, has been disappointed with NT. The reason is simple. Windows NT is designed without any flexibility in mind. The only thing it knows is that the application you're trying to run just violated system integrity. As a result, the application gets squashed. Microsoft wrote this operating system to run as reliably as possible, which means that it can't bend to the needs of an application that thinks it needs to run alone.
Windows 95 will never be as stable as Windows NT. It'll bend as much as possible to allow that old application to run. Because of this added flexibility, Windows 95 will run mostif not allof your DOS applications with a little tinkering. Microsoft even provided a special startup mode (called MS-DOS mode) for applications that don't run well in either a full-screen or windowed DOS session. Each MS-DOS mode can have its own CONFIG.SYS and AUTOEXEC.BAT settings; you won't find that in your Windows NT package. With all this additional assistance, you might even find that these old applications run better under Windows 95 than they used to from the DOS prompt. The tradeoff is that you don't get the same level of reliability.
Ease of use is a big issue in corporate America. Just think about the cost of training several hundred users on a new operating system and you'll see why. The one new feature that Windows 95 provides is its interface. Once you get used to it, this interface is easier to use and a lot faster. Productivity and low training costs are music to corporate America's ears. Fortunately, the latest version of Windows NT will use the same interface. Here's the problem: Compare the cost of a single copy of Windows NT to Windows 95, and you'll see that Windows 95 is a lot less expensive. With a large installed base of Windows NT machines out there, most corporations won't be running out to buy the new operating system as soon as it gets released; cost is a major limiting factor. As a result, you'll see a combination of systems sitting arounda real nightmare for a network administrator and any corporate trainers.
Finallythere isn't any way to get around this issueWindows NT will always be more difficult to install than Windows 95, if for no other reason than all the advanced capabilities Windows NT includes. The first clue you'll have is the asterisks on the outside of the Windows NT package that point to a note saying "Compatible with Windows NT Workstation." Essentially, those asterisks tell you that the Windows NT installation will go well as long as all your hardware and software appear on the Windows NT approved list. Suffice it to say that as a corporate buyer, you're going to run into machines that have hardware not on that list. With Windows 95, you at least have some hope of working around the problem using real-mode drivers; under Windows NT, it's a lost cause. If you want to use Windows NT, you need to be a lot more particular about the hardware you buy. A particular buyer usually spends more for each piece of hardware than one who has the option of shopping around.
The big news for Windows NT is the new interface. The same interface that made Windows 95 such a hit with the home market will probably make Windows NT a hit with the corporate market. Windows NT made some additions to this one item, though. For one thing, Windows NT is going to be a lot faster than its predecessor because Microsoft has rewritten some of the APIs. Graphics is one area of improvement that most users will see immediately.
Microsoft also added some of the other Windows 95 goodies to this version of Windows NT. You'll find the new TAPI (telephone application programming interface) support makes communications easier. Features such as OLE 2 support and the level of network support that Windows NT provides are not new but are improved over previous versions.
A few features are new to Windows NT alone. For one thing, Windows NT has always supported a better level of graphics than Windows 95. A new addition in this area is OpenGL. (The fact that Windows NT includes OpenGL-enabled screen savers underscores the importance of this feature.) Let's just say that you'll really approve of the results. The following list tells you what other new or improved features Microsoft has added to Windows NT.
The next few sections look at the new features that Windows NT provides and present an overview of just how much these features will help you in your day-to-day work. You'll see the details about these features throughout the book. Right now, just sit back and think about the big picture. Windows NT provides a new panorama of welcome changes that you're sure to like.
Tip: Unlike with previous versions of Windows, it's easy to add and remove features with Windows NT. If you want to fully explore the capabilities of this new operating system, perform a full installation. Check out all the new applications and see which ones work well for you. Once you have time to really check things out, remove the applications you don't need. Chapter 4, "Setup Primer," discusses the specifics of how to do this.
Explorer was the new feature in Windows 95 that really attracted media attention. Windows NT now benefits from this new interface as well. The Explorer interface replaces both Program Manager and File Managerproviding the functionality of both in one package. Of course, if that's all Explorer had to offer, you might be well advised to keep your current programs in place. After all, you already know how to use them, so why bother to learn something new?
Several features make Explorer an interface that you will want to learn how to use. Figure 1.4 shows one of the myriad reasons that you'll want to switch to this product. It shows what appears to be two completely different utility windows, yet both are Explorer. This utility enables you to configure the Windows interface to suit your needs; it doesn't force you into a certain way of thinking.
Figure 1.4. Explorer offers both a one-pane and a two-pane interface that you can use to look at your hard drive.
Note: Windows NT provides you with a new termfolder. It uses this term to describe any kind of container. A folder can hold files, applications, or other folders. Even the Desktop is a folder. Whenever you see the term folder, you might think of a directory. A folder isn't exactly the same as a directory, however. Think of it as a directory (real or imagined) with intelligence. Chapter 9 examines this concept in detail.
The one- and two-pane look isn't the only way in which Explorer differentiates itself. Figure 1.5 shows another reason you'll want to make the change. The four different ways to display the information from your hard drive are large icon, small icon, list, and details. I find that I'm most comfortable with the details view when I really need to know everything there is to know about a file, and I like the large icon view when I'm just working with some data. You will likely form your own set of preferences. You might switch from view to view as I do. This is an important leap. Windows 3.x tended to stifle any kind of creative environment management; Windows NT does everything it can to encourage it.
Figure 1.5. Explorer provides a variety of ways to display the information on your system.
Explorer also takes a third form, but you'll see only one copy of it installed on the system. It's better known as the Taskbar. You'll probably see it at the bottom of the Windows NT display unless you specifically asked Windows NT to move it. Figure 1.6 shows a typical Taskbar with an open application.
Figure 1.6. The Taskbar is just another form of Explorer that enables you to track open applications and start new ones.
The Taskbar is probably one of the most versatile ways to keep your system in check. Not only does it maintain a list of all your applications, but it also helps you manage the open ones. Ever try to find an application buried beneath all the other windows you have open? It's a real pain trying to figure out which window is which. Taskbar displays all your applications in an easy-to-reach format. To select an open application, just click on its button.
Starting a new application is also easy. All you need to do is click the Start button and select from the menu the application you want to use. The Taskbar uses what is known as sticky menus. A sticky menu doesn't go away immediately; it stays in place until you get done using it. You have to tell Windows NT to get rid of the menu if you decide not to select something from it after all. This means that you don't have to work very hard to find something. Just point your way through the menu to find what you need.
At the right end of the Taskbar, you will see one or more icons. In most cases, you'll see a clock. If your system has some type of sound board, the volume icon appears there as well. Notebook computers usually display a battery icon in this area. International users might see an international icon at the end of the Taskbar. Chapter 5, "Startup Shortcuts," covers all these features in detail.
Imagine, if you will, that your machine is part of a vast network of interconnected machines. Everyone on the network uses the same set of applications, including one fairly complex database program. In the old days, management would have simply bought a jumbo, economy-sized mainframe to take care of the job. We're now living in the days of distributed processing, however, where LANs abound and mainframes are somewhat passé. How do you make this big clunker of a database application work?
Remote procedure calls (RPCs) provide at least part of the answer to this puzzle. Everyone knows that Windows uses something called a DLL (dynamic link library). What you might not realize is that these are mini-applications of a sort. Your application might need the functions contained in a DLL. It asks Windows NT to load that DLL, and then it loads and executes the required code that the DLL contains.
Old versions of Windows required that DLLs appear on your machine. You couldn't use a DLL that appeared on someone else's machine. Windows NT changes all that. It enables you to call a DLL that is on someone else's machine.
RPCs are a lot more than just a better way to find code that an application might need to run, though. They provide an extra bit of functionality that will literally change the way people compute. What would you do if you could install a second processor in your machine at a moment's notice and then get rid of it when it was no longer needed? This is the second part of an RPC. The code that you ask it to execute actually does so on the machine where the DLL resides. In effect, you get to load a second processor for a while, and you can get rid of it when it's no longer needed.
This section provides a very brief description of a complex process. The level of support you can expect from Windows NT for RPCs varies as a factor of the network protocol you use. You need to consider other environmental factors as well. Of course, your application has to make use of RPCs before you see any benefit from them. In most cases, this means writing a custom application.
Looking Ahead: Chapters 12, "DDE and OLE," and 21, Peer-to-Peer Networking," help you understand what kind of RPC support you can expect from Windows NT. In most cases, it's a lot less than you might think because this technology is still in its infancy. Even as I'm writing this, though, Microsoft is working on a variety of new OLE technologies including network OLE and another form of OLE for the Internet. Both of these new OLE forms will require RPCs.
How often have you heard people say that they disabled Print Manager under Windows 3.x for one reason or another? It's all too common, I'm afraid. People do it for several reasons. First and foremost, people think Print Manager is too slow to meet their needs. Lack of adequate DOS and interprocess support is another reason that people cite. Even the Print Manager interface receives its share of criticism.
Windows NT fixes all these problems and more. Not only is the Printer dialog box easier to use in Windows NT, but it also provides far more options in the way you configure your printer. Figure 1.7 shows a typical display. Your dialog box might differ due to differences in printer capabilities. Network printing receives special emphasis in Windows NT as well. Finally, you can print from multiple applicationsyou can even mix a few DOS applications in for good measureand never fear that the output from your printer will be a confused mess.
Figure 1.7. Printing under Windows NT is a lot easier and more flexible than it was under Windows 3.x.
Looking Ahead: Chapters 11 and 15, "Fonts and Printing," contain the majority of the printer-specific information for this book. You'll find little nuggets of printer information throughout the book. Chapter 14, "Exploiting Your Hardware," gives you some ideas on how to fully exploit your printer hardware. It also provides a look at printer connections in general. Finally, Chapters 21 and 22, "Client/Server Networking," discuss some of the choices you need to make when using a printer in a network setting.
Windows NT provides several new features, especially in the area of OLE (object linking and embedding) support. One of the biggest aids that Windows NT provides is enhanced support for OLE 2. (Version 3.51 provided a moderate level of OLE 2 support, but the standard has changed slightly since then, and the new version of Windows NT adds this extra level of support.) Windows 3.x came with OLE 1 support. If you've installed an application that provided OLE 2 support, you're in luck.
The differences between OLE 2 and OLE 1 are significant. OLE 2 provides the means to embed objects within objects, for example. It also provides methods of allowing the server application to change the menus and toolbar of the client application. As far as the user is concerned, he's using the same application. The window doesn't change; only the tools change to meet the current requirements.
Windows NT provides a few additional features as well. OLE now use 32-bit drivers whenever possible, for example. This change will dramatically increase the speed of either linking or embedding objects in applications. It'll also help reduce the memory burden of using OLE.
DDE support under Windows NT hasn't changed much in theory from Windows 3.x. However, I'll look at some of the ways that Windows NT does make it easier to use DDE.
Looking Ahead: Chapter 12 concentrates on both OLE and DDE support under Windows NT. Not only does it examine some of the architectural requirements for both, but it also spends some hands-on time with these two important features. Have you ever been able to figure out the Object Packager? Chapter 12 will tell you how to use it to your advantage.
Connectivity is the name of the game under Windows NT. Older versions of Windows provided only the most rudimentary communication facilities. Windows NT provides Microsoft Exchangea centralized location for all your communication needs. It doesn't really matter where a message needs to goon-line or network. All you need to do is specify a recipient, and Microsoft Exchange will make sure it gets to where it needs to go.
Figure 1.8 shows Microsoft Exchange. As you can see, it consists of an in box, out box, and sent messages box. A fourth box allows you to recover messages deleted by accident. Overall, Microsoft Exchange represents one of the easiest ways to manage all your e-mail if you get it from more than one source. It also represents an efficient method of sharing that information with other people, even if they aren't connected to the same services you are.
Figure 1.8. Windows NT provides extensive connectivity features and centralized e-mail management using Microsoft Exchange.
Of course, something as complex as this will always have a few problems. You might eventually have a single package that provides every bit of support you'll need to access all your e-mail, but you won't find it today. Microsoft Exchange currently provides limited support for only some of the on-line services. (The level of support provided by Exchange seems to ebb and flow with the tides of legal pressure by the Justice Department on Microsoft, but they have been fairly consistent in their lack of drivers for major competition such as CompuServe and America Online.) In addition, you'll still need a separate communication program if you plan to explore these on-line services. Even though Microsoft Exchange provides a platform for total coverage, it doesn't provide all the modules needed to do so today. Microsoft Exchange is excellent at managing your e-mail but not much more.
Looking Ahead: Chapter 17, "Windows NT Connections," helps you understand some of the hardware requirements for using the communication features that Windows NT provides. Once you get the hardware working, look at Chapter 18, "Talking to the Outside World," for full details on using the software. Connectivity has become a major need for most users. It doesn't matter what line of work you're in or precisely how you use your computer. Somewhere along the way, you'll need to communicate with someone. Chapter 19, "Surfing the Net," will come in handy when you decide it's time to start surfing the Net. You'll also want to look at Chapter 20, "Building Your Own Internet Server," should you decide to build your own Internet serversomething that a lot of companies are looking at seriously today.
Windows NT addresses the needs of people who have special computing requirements. The Accessibility dialog box, shown in Figure 1.9, provides everyone with features that make the computer easier to use. Features such as sticky keys and the ability of the computer to ignore too many repeated keystrokes really help those who can't easily use a computer.
Figure 1.9. The Accessibility features provided by Windows NT are for everyone, not just those with special needs.
Peter's Principle: Always Check the Tools at Hand
A common misconception about the accessibility tools supplied with Windows NT is that they're useful only if you have a handicap. Nothing could be further from the truth. It always pays to explore all the tools at hand, whether you think you can use them or not.
Many people turn on the ToggleKeys feature on the Keyboard tab of the Accessibility dialog box. This feature makes an audible noise when you press the Caps Lock, Num Lock, or Scroll Lock keys. It's a handy feature for touch typists who might be paying more attention to the paper they're typing from than the screen they're typing to.
I personally find the MouseKeys feature helpful. It allows you to use the arrow keys to move the mouse cursor. This is a real bonus when you're using a drawing program and need a little extra control over the size and position of drawing elements.
Still other people find that the High Contrast Display feature is a nice way to give their eyes a break after a difficult day. You don't have to leave it on all the time, just when your eyes get tired.
Windows NT is filled with hidden tools. I discuss the majority of them in this book, but only you can decide to use them. Always use the tools at hand whenever possible to improve your productivityespecially when that tool is provided free of charge.
There are three major tabs within the Accessibility Options dialog box (plus one General tab that configures the dialog box itself):
Each of these features helps people who have special considerations when using a computer. The solutions aren't perfect, but they're a step in the right direction.
Looking Ahead: Chapter 14 takes a look at two of the most important aspects of the Accessibility dialog boxmice and keyboards. These two components represent a major challenge to a lot of people out there, but Windows NT does a good job of making them more user friendly. You'll find some additional information about the Accessibility Options in this chapter when it comes to using some of the additional features for your display adapter. You'll find special support for features to reduce eye strain by making the display much more readable, for example. Finally, Chapter 16, "Multimedia Under Windows NT," will help you understand some of the limited sound options provided by the Accessibility dialog box.
Windows NT now provides limited PCMCIA support. What do I mean by limited? Windows NT does support specific types of SCSI controllers, network adapters, and PCMCIA hard disks. It doesn't include support for PCMCIA cards or sockets. It also doesn't provide support for hot swapping of PCMCIA cards like Windows 95 does; you'll need to shut your system down, change the card, and then reboot it to make the change. In short, if you have a portable and need to swap PCMCIA cards, Windows NT isn't the right operating system for you. On the other hand, if you're going to install something on a more or less permanent basis, Windows NT will work for you now.
OpenGL is a three-dimensional graphics standard that should allow users of CAD applications to see a vast improvement in the performance of their systems. It builds on the already superior graphics capabilities that Windows NT provides to allow faster graphics processing. The average user will see a performance boost as wellnot to mention those enhanced screen savers provided with Windows NT.
Open the System Properties dialog box for your computer by right-clicking My Computer and selecting Properties from the context menu. Click the Performance tab. Do all the indicators show that your machine is fully optimized?
If your machine is completely optimized from Windows's point of view, look at the File System and Virtual Memory dialog boxes by clicking their respective buttons. Does your system make optimum use of both settings? Make sure that you check your CD-ROM settings because Windows NT won't automatically detect it. Does the CD-ROM setting reflect the speed of your drive? Are you using the largest cache that your machine can support?
Install and load the Resource Meter and System Monitor utilities. Check your system performance over the course of a week or so. Then, try to optimize your settings and see if you can improve system performance. Fully tuning your system could take a while, but it's well worth the effort.